package com.zhongfu.emapp.business.base.activity

import android.os.Bundle
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.LogUtils
import com.zf.zfed.audit.base.BaseActivity

/**
 * 活动activity的基础公共类，主要是初始化控件、数据、监听事件等，
 * 便于后类的继承，业务代码的规整
 */
abstract class BaseCommonActivity : BaseActivity() {

    override fun onResume() {
        super.onResume()
        BarUtils.setStatusBarVisibility(this, false)
        BarUtils.setNavBarVisibility(this, false)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        supportActionBar?.hide()
        initActivity()
    }

    protected open fun initActivity() {
        initLayout()
        initView()
        initData()
    }

    /**
     * 获取布局 ID
     */
    protected abstract fun getLayoutId(): Int

    /**
     * 初始化控件
     */
    protected abstract fun initView()

    /**
     * 初始化数据
     */
    protected abstract fun initData()

    /**
     * 初始化布局
     */
    protected open fun initLayout() {
        if (getLayoutId() > 0) {
            setContentView(getLayoutId())
        } else {
            LogUtils.w("Check ${javaClass.simpleName} LayoutId")
        }
    }

}